{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import os\n",
    "import gc\n",
    "import lightgbm as lgb\n",
    "import xgboost as xgb\n",
    "from catboost import CatBoostRegressor\n",
    "from sklearn.linear_model import SGDRegressor, LinearRegression, Ridge\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "import math         \n",
    "import numpy as np\n",
    "from tqdm import tqdm\n",
    "from sklearn.model_selection import StratifiedKFold, KFold\n",
    "from sklearn.metrics import mean_absolute_error\n",
    "import matplotlib.pyplot as plt\n",
    "import time\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "read csv train_mold_data.csv...\n"
     ]
    }
   ],
   "source": [
    "if not os.path.exists('train_mold_data.csv') & True:\n",
    "    train_file_name = []\n",
    "    for file in tqdm(os.listdir('./Train/')):  \n",
    "        if 'mold_data' in file:\n",
    "            path = './Train/'+file\n",
    "            fr = open(path,'rb').read()\n",
    "            with open('train_mold_data.csv','ab') as f:\n",
    "                f.write(fr) \n",
    "            fr = open(path)\n",
    "            train_file_name += len(fr.readlines()) * [path]\n",
    "\n",
    "    test_file_name = []\n",
    "    for file in tqdm(os.listdir('./Test初赛/')):  \n",
    "        if 'mold_data' in file:\n",
    "            path = './Test初赛/'+file\n",
    "            fr = open(path,'rb').read()\n",
    "            with open('test_mold_data.csv','ab') as f:\n",
    "                f.write(fr) \n",
    "            fr = open(path)\n",
    "            test_file_name += len(fr.readlines()) * [path]\n",
    "\n",
    "    train_mold_data = pd.read_csv('train_mold_data.csv')\n",
    "    train_mold_data['file_name'] = np.array(train_file_name[1:])\n",
    "    train_mold_data = train_mold_data[train_mold_data.SampleTime!='SampleTime']\n",
    "\n",
    "    test_mold_data = pd.read_csv('test_mold_data.csv')\n",
    "    test_mold_data['file_name'] = np.array(test_file_name[1:])\n",
    "    test_mold_data = test_mold_data[test_mold_data.SampleTime!='SampleTime']\n",
    "\n",
    "    train_mold_data.to_csv('train_mold_data.csv', index=False)\n",
    "    test_mold_data.to_csv('test_mold_data.csv', index=False)\n",
    "else:\n",
    "    print('read csv train_mold_data.csv...')\n",
    "    train_mold_data = pd.read_csv('train_mold_data.csv')\n",
    "    test_mold_data = pd.read_csv('test_mold_data.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 机台工艺设定参数（data_set）：文件夹中含有注塑成型的81种工艺设定参数；\n",
    "train_data_set = pd.read_csv('./Train/data_set.csv')\n",
    "# 成型机状态数据（data_spc）：该数据来自成型机机台，均为表征成型过程中的一些状态数据，每一行对应一个模次，数据维度为86维；\n",
    "train_data_spc = pd.read_csv('./Train/data_spc.csv')\n",
    "train_size = pd.read_csv('./Train/Size.csv')\n",
    "\n",
    "test_data_set = pd.read_csv('./Test初赛/data_set.csv')\n",
    "test_data_spc = pd.read_csv('./Test初赛/data_spc.csv')\n",
    "\n",
    "sub_file = pd.read_csv('sub_file.csv')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 均为空的特征 \n",
    "null_cols = ['EL_IV_END_TIME','EL_VPS_TIME','EL_GET_PART_TIME','ext_mold_temp_flt_4','ext_mold_temp_flt_5','ext_mold_temp_flt_6','ext_mold_temp_flt_7']\n",
    "\n",
    "train_data_spc = train_data_spc[[f for f in train_data_spc.columns if f not in null_cols]]\n",
    "test_data_spc = test_data_spc[[f for f in test_data_spc.columns if f not in null_cols]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 属性唯一的特征 \n",
    "low_nunique_cols = []\n",
    "for f in test_data_spc.columns:\n",
    "    if test_data_spc[f].nunique() == 1:\n",
    "        low_nunique_cols.append(f)\n",
    "\n",
    "train_data_spc = train_data_spc[[f for f in train_data_spc.columns if f not in low_nunique_cols]]\n",
    "test_data_spc = test_data_spc[[f for f in test_data_spc.columns if f not in low_nunique_cols]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# mold_data  属性唯一的特征\n",
    "del_cols = ['MouldFlow2','MouldFlow3']\n",
    "train_mold_data = train_mold_data[[f for f in train_mold_data.columns if f not in del_cols]]\n",
    "test_mold_data = test_mold_data[[f for f in test_mold_data.columns if f not in del_cols]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_mold_data['Id'] = train_mold_data['file_name'].apply(lambda x: int(x.split('_')[-1][:-4]))\n",
    "test_mold_data['Id'] = test_mold_data['file_name'].apply(lambda x: int(x.split('_')[-1][:-4]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 获取所属机台参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 可用参数\n",
    "set_cols = []\n",
    "for f in train_data_set.columns:\n",
    "    if train_data_set[f].nunique() > 1:\n",
    "        if f != 'Id':\n",
    "            set_cols.append(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.concat([train_data_spc, test_data_spc], axis=0, ignore_index=False)\n",
    "min_id = df['Id'].min()\n",
    "max_id = df['Id'].max()+1\n",
    "\n",
    "# 两区间内机台参数一致\n",
    "cup_id_li = [min_id] + train_data_set['Id'].tolist() + [max_id]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_data_spc['true_Id'] = 0\n",
    "test_data_spc['true_Id'] = 0\n",
    "for i in range(len(cup_id_li)-1):\n",
    "    id1 = cup_id_li[i]\n",
    "    id2 = cup_id_li[i+1]\n",
    "    train_data_spc.loc[(train_data_spc['Id']>=id1)&(train_data_spc['Id']<id2), 'true_Id'] = i\n",
    "    test_data_spc.loc[(test_data_spc['Id']>=id1)&(test_data_spc['Id']<id2), 'true_Id'] = i"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_data_set = train_data_set.reset_index()\n",
    "train_data_set['index'] = train_data_set['index'] + 1\n",
    "train_data_set = train_data_set.rename(columns={'index':'true_Id'})\n",
    "\n",
    "train_data_spc = train_data_spc.merge(train_data_set[set_cols+['true_Id']], on='true_Id', how='left')\n",
    "test_data_spc = test_data_spc.merge(train_data_set[set_cols+['true_Id']], on='true_Id', how='left')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 特征提取"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 依据mold_data数据提取序列相关特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "def groupby_feat1(df_, col):\n",
    "    \n",
    "    df = df_.copy()\n",
    "    \n",
    "    agg_df = df.groupby(['Id'])[col].agg(\n",
    "        {'mean',\n",
    "         'median',\n",
    "         'max',\n",
    "         'min',\n",
    "         'nunique',\n",
    "         'std',\n",
    "         lambda x: np.quantile(x, 0.10),\n",
    "         lambda x: np.quantile(x, 0.20),\n",
    "         lambda x: np.quantile(x, 0.30),\n",
    "         lambda x: np.quantile(x, 0.40),\n",
    "         lambda x: np.quantile(x, 0.50),\n",
    "         lambda x: np.quantile(x, 0.60),\n",
    "         lambda x: np.quantile(x, 0.70),\n",
    "         lambda x: np.quantile(x, 0.80),\n",
    "         lambda x: np.quantile(x, 0.90)}\n",
    "        ).reset_index()\n",
    "    \n",
    "    agg_df.columns = ['Id'] + [col + '_' + f for f in agg_df.columns.values if f != 'Id']\n",
    "    \n",
    "    return  agg_df \n",
    "\n",
    "def groupby_feat2(df_):\n",
    "    \n",
    "    df = df_.copy()\n",
    "    \n",
    "    agg_func = {\n",
    "        'SampleTime':      ['count','max','std'],\n",
    "        'Phase':           ['mean','max','nunique','std']\n",
    "        } \n",
    "    \n",
    "    agg_df = df.groupby(['Id']).agg(agg_func).reset_index()\n",
    "    agg_df.columns = ['_'.join(f).strip() for f in agg_df.columns.values]\n",
    "    agg_df = agg_df.rename(columns={'Id_':'Id'})\n",
    "    \n",
    "    return agg_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 20/20 [24:27<00:00, 72.85s/it]\n"
     ]
    }
   ],
   "source": [
    "cols = ['Sensor1','Sensor2','Sensor3','IJ','Sensor5','Sensor6','MouldTemp1','MouldTemp2','MouldTemp3','MouldTemp4','MouldTemp5',\\\n",
    "        'MouldTemp9','MouldTemp10','MouldTemp11','MouldTemp12','MouldTemp13','MouldTemp14','Sensor8','MouldFlow1','SP']\n",
    "agg_df_cols = []\n",
    "for col in tqdm(cols):\n",
    "    \n",
    "    train_mold_data[col] = train_mold_data[col].astype(float).apply(lambda x:round(x, 3))\n",
    "    test_mold_data[col] = test_mold_data[col].astype(float).apply(lambda x:round(x, 3))\n",
    "    \n",
    "    agg_df = groupby_feat1(train_mold_data, col)\n",
    "    train_data_spc = train_data_spc.merge(agg_df, on='Id', how='left')\n",
    "    \n",
    "    agg_df_cols += [f for f in agg_df.columns if f != 'Id']\n",
    "    \n",
    "    agg_df = groupby_feat1(test_mold_data, col)\n",
    "    test_data_spc = test_data_spc.merge(agg_df, on='Id', how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "# SampleTime Phase Id2 相关特征\n",
    "agg_df = groupby_feat2(train_mold_data)\n",
    "train_data_spc = train_data_spc.merge(agg_df, on='Id', how='left')\n",
    "\n",
    "agg_df = groupby_feat2(test_mold_data)\n",
    "test_data_spc = test_data_spc.merge(agg_df, on='Id', how='left')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### train_data_spc相关特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_spc = pd.concat([train_data_spc, test_data_spc], axis=0, ignore_index=True)\n",
    "data_spc = data_spc.merge(train_size, on='Id', how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "cols = ['Id','spcTime','EL_CLAMP_PRESS','IJ_<lambda_0>','IJ_nunique','Sensor6_<lambda_6>']\n",
    "# cols = ['Id','spcTime','EL_CLAMP_PRESS'] + agg_df_cols\n",
    "cut_cols = ['true_Id']\n",
    "for col in cols:\n",
    "    data_spc['cut_'+col] = pd.cut(data_spc[col], 100, labels=False)\n",
    "    cut_cols.append('cut_'+col)\n",
    "\n",
    "# data_spc['size12'] = data_spc['size1'] + data_spc['size2']\n",
    "# data_spc['size13'] = data_spc['size1'] + data_spc['size3']\n",
    "# data_spc['size23'] = data_spc['size2'] + data_spc['size3']\n",
    "# data_spc['size123'] = data_spc['size1'] + data_spc['size2'] + data_spc['size3']\n",
    "\n",
    "# data_spc['size1_2'] = data_spc['size1'] / data_spc['size2']\n",
    "# data_spc['size1_3'] = data_spc['size1'] / data_spc['size3']\n",
    "# data_spc['size2_3'] = data_spc['size2'] / data_spc['size3']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 7/7 [00:00<00:00, 78.49it/s]\n"
     ]
    }
   ],
   "source": [
    "mean_columns = []\n",
    "for col1 in tqdm(cut_cols):\n",
    "    for col2 in ['size1','size2','size3']:\n",
    "        col_name = col1+'_'+col2+'_median'\n",
    "        mean_columns.append(col_name)\n",
    "        order_label = data_spc.groupby([col1])[col2].median()\n",
    "        data_spc[col_name] = data_spc[col1].map(order_label)\n",
    "        \n",
    "        col_name = col1+'_'+col2+'_mean'\n",
    "        mean_columns.append(col_name)\n",
    "        order_label = data_spc.groupby([col1])[col2].mean()\n",
    "        data_spc[col_name] = data_spc[col1].map(order_label)\n",
    "        \n",
    "for col in ['size1','size2','size3']:\n",
    "    del data_spc[col]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_data_spc = data_spc[:train_data_spc.shape[0]]\n",
    "test_data_spc = data_spc[train_data_spc.shape[0]:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 训练集&验证集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_size['size1_label'] = train_size['size1']\n",
    "train_size['size2_label'] = train_size['size2']\n",
    "train_size['size3_label'] = train_size['size3']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "features = [f for f in train_data_spc.columns if f not in ['adjust_reasons','versionTime']]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "def cv_model(clf, train_x, train_y, test_x, clf_name):\n",
    "    folds = 5\n",
    "    seed = 2020\n",
    "    kf = KFold(n_splits=folds, shuffle=True, random_state=seed)\n",
    "\n",
    "    train = np.zeros(train_x.shape[0])\n",
    "    test = np.zeros(test_x.shape[0])\n",
    "\n",
    "    cv_scores = []\n",
    "\n",
    "    for i, (train_index, valid_index) in enumerate(kf.split(train_x, train_y)):\n",
    "        print('************************************ {} ************************************'.format(str(i+1)))\n",
    "        trn_x, trn_y, val_x, val_y = train_x.iloc[train_index], train_y[train_index], train_x.iloc[valid_index], train_y[valid_index]\n",
    "\n",
    "        if clf_name == \"lgb\":\n",
    "            train_matrix = clf.Dataset(trn_x, label=trn_y)\n",
    "            valid_matrix = clf.Dataset(val_x, label=val_y)\n",
    "\n",
    "            params = {\n",
    "                'boosting_type': 'gbdt',\n",
    "                'objective': 'regression_l2',\n",
    "                'metric': 'mae',\n",
    "                'num_leaves': 2**8-1,\n",
    "                'lambda_l2': 10,\n",
    "                'feature_fraction': 0.8,\n",
    "                'bagging_fraction': 0.8,\n",
    "                'learning_rate': 0.01,\n",
    "                'seed': 2020,\n",
    "                'n_jobs':24,\n",
    "                'silent': True,\n",
    "                'verbose': -1,\n",
    "            }\n",
    "\n",
    "            model = clf.train(params, train_matrix, 50000, valid_sets=[train_matrix, valid_matrix], verbose_eval=500, early_stopping_rounds=200)\n",
    "            val_pred = model.predict(val_x, num_iteration=model.best_iteration)\n",
    "            test_pred = model.predict(test_x, num_iteration=model.best_iteration)\n",
    "            \n",
    "            # print(list(sorted(zip(test_data_spc.columns, model.feature_importance(\"gain\")), key=lambda x: x[1], reverse=True))[:20])\n",
    "                \n",
    "        if clf_name == \"xgb\":\n",
    "            train_matrix = clf.DMatrix(trn_x.values , label=trn_y)\n",
    "            valid_matrix = clf.DMatrix(val_x.values , label=val_y)\n",
    "            test_matrix = clf.DMatrix(test_x.values)\n",
    "            \n",
    "            params = {'booster': 'gbtree',\n",
    "                      'eval_metric': 'mae',\n",
    "                      'gamma': 1,\n",
    "                      'min_child_weight': 1.5,\n",
    "                      'max_depth': 8,\n",
    "                      'lambda': 10,\n",
    "                      'subsample': 0.7,\n",
    "                      'colsample_bytree': 0.7,\n",
    "                      'colsample_bylevel': 0.7,\n",
    "                      'eta': 0.01,\n",
    "                      'tree_method': 'exact',\n",
    "                      'seed': 2020,\n",
    "                      'nthread': 36,\n",
    "                      \"silent\": True,\n",
    "                      }\n",
    "            \n",
    "            watchlist = [(train_matrix, 'train'),(valid_matrix, 'eval')]\n",
    "            \n",
    "            model = clf.train(params, train_matrix, num_boost_round=50000, evals=watchlist, verbose_eval=500, early_stopping_rounds=200)\n",
    "            val_pred  = model.predict(valid_matrix, ntree_limit=model.best_ntree_limit)\n",
    "            test_pred = model.predict(test_matrix , ntree_limit=model.best_ntree_limit)\n",
    "                 \n",
    "            \n",
    "        train[valid_index] = val_pred\n",
    "        test += test_pred / kf.n_splits\n",
    "        cv_scores.append(mean_absolute_error(val_y, val_pred))\n",
    "        \n",
    "        print(cv_scores)\n",
    "       \n",
    "    print(\"%s_scotrainre_list:\" % clf_name, cv_scores)\n",
    "    print(\"%s_score_mean:\" % clf_name, np.mean(cv_scores))\n",
    "    print(\"%s_score_std:\" % clf_name, np.std(cv_scores))\n",
    "    return train, test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "def lgb_model(x_train, y_train, x_test):\n",
    "    lgb_train, lgb_test = cv_model(lgb, x_train, y_train, x_test, \"lgb\")\n",
    "    return lgb_train, lgb_test\n",
    "\n",
    "def xgb_model(x_train, y_train, x_test):\n",
    "    xgb_train, xgb_test = cv_model(xgb, x_train, y_train, x_test, \"xgb\")\n",
    "    return xgb_train, xgb_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "************************************ 1 ************************************\n",
      "Training until validation scores don't improve for 200 rounds.\n",
      "[500]\ttraining's l1: 0.00628886\tvalid_1's l1: 0.0132544\n",
      "Early stopping, best iteration is:\n",
      "[633]\ttraining's l1: 0.00512135\tvalid_1's l1: 0.0132469\n",
      "[0.013246479027307018]\n",
      "************************************ 2 ************************************\n",
      "Training until validation scores don't improve for 200 rounds.\n",
      "[500]\ttraining's l1: 0.00622441\tvalid_1's l1: 0.0132671\n",
      "Early stopping, best iteration is:\n",
      "[594]\ttraining's l1: 0.00535957\tvalid_1's l1: 0.0132436\n",
      "[0.013246479027307018, 0.013243713162545665]\n",
      "************************************ 3 ************************************\n",
      "Training until validation scores don't improve for 200 rounds.\n",
      "[500]\ttraining's l1: 0.00620515\tvalid_1's l1: 0.0136527\n",
      "Early stopping, best iteration is:\n",
      "[508]\ttraining's l1: 0.00612545\tvalid_1's l1: 0.0136495\n",
      "[0.013246479027307018, 0.013243713162545665, 0.013649547916273605]\n",
      "************************************ 4 ************************************\n",
      "Training until validation scores don't improve for 200 rounds.\n",
      "[500]\ttraining's l1: 0.00622535\tvalid_1's l1: 0.0131992\n",
      "Early stopping, best iteration is:\n",
      "[552]\ttraining's l1: 0.00573455\tvalid_1's l1: 0.013197\n",
      "[0.013246479027307018, 0.013243713162545665, 0.013649547916273605, 0.013196912451973655]\n",
      "************************************ 5 ************************************\n",
      "Training until validation scores don't improve for 200 rounds.\n",
      "[500]\ttraining's l1: 0.00614903\tvalid_1's l1: 0.0138291\n",
      "[1000]\ttraining's l1: 0.00287933\tvalid_1's l1: 0.0138105\n",
      "Early stopping, best iteration is:\n",
      "[952]\ttraining's l1: 0.00308972\tvalid_1's l1: 0.0138075\n",
      "[0.013246479027307018, 0.013243713162545665, 0.013649547916273605, 0.013196912451973655, 0.013807427900381029]\n",
      "lgb_scotrainre_list: [0.013246479027307018, 0.013243713162545665, 0.013649547916273605, 0.013196912451973655, 0.013807427900381029]\n",
      "lgb_score_mean: 0.013428816091696194\n",
      "lgb_score_std: 0.0002503432194422708\n"
     ]
    }
   ],
   "source": [
    "lgb_train, lgb_test = lgb_model(train_data_spc[features], train_size['size1_label'], test_data_spc[features])\n",
    "# 0.013393978245265305\n",
    "# 0.013323751647949165\n",
    "# 0.01328425039177308"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "************************************ 1 ************************************\n",
      "Training until validation scores don't improve for 200 rounds.\n",
      "[500]\ttraining's l1: 0.00670393\tvalid_1's l1: 0.0144163\n",
      "[1000]\ttraining's l1: 0.0031165\tvalid_1's l1: 0.0143976\n",
      "Early stopping, best iteration is:\n",
      "[949]\ttraining's l1: 0.00335957\tvalid_1's l1: 0.0143955\n",
      "[0.014395475852839484]\n",
      "************************************ 2 ************************************\n",
      "Training until validation scores don't improve for 200 rounds.\n",
      "[500]\ttraining's l1: 0.006754\tvalid_1's l1: 0.0140551\n",
      "[1000]\ttraining's l1: 0.00313994\tvalid_1's l1: 0.0140301\n",
      "Early stopping, best iteration is:\n",
      "[972]\ttraining's l1: 0.00327314\tvalid_1's l1: 0.0140288\n",
      "[0.014395475852839484, 0.014028740164860066]\n",
      "************************************ 3 ************************************\n",
      "Training until validation scores don't improve for 200 rounds.\n",
      "[500]\ttraining's l1: 0.00670888\tvalid_1's l1: 0.0141631\n",
      "Early stopping, best iteration is:\n",
      "[437]\ttraining's l1: 0.00742769\tvalid_1's l1: 0.014159\n",
      "[0.014395475852839484, 0.014028740164860066, 0.014158923116753786]\n",
      "************************************ 4 ************************************\n",
      "Training until validation scores don't improve for 200 rounds.\n",
      "[500]\ttraining's l1: 0.00671626\tvalid_1's l1: 0.013953\n",
      "Early stopping, best iteration is:\n",
      "[577]\ttraining's l1: 0.00593857\tvalid_1's l1: 0.0139446\n",
      "[0.014395475852839484, 0.014028740164860066, 0.014158923116753786, 0.013944507035113433]\n",
      "************************************ 5 ************************************\n",
      "Training until validation scores don't improve for 200 rounds.\n",
      "[500]\ttraining's l1: 0.00670171\tvalid_1's l1: 0.0141298\n",
      "Early stopping, best iteration is:\n",
      "[509]\ttraining's l1: 0.00660506\tvalid_1's l1: 0.0141279\n",
      "[0.014395475852839484, 0.014028740164860066, 0.014158923116753786, 0.013944507035113433, 0.014127839843795724]\n",
      "lgb_scotrainre_list: [0.014395475852839484, 0.014028740164860066, 0.014158923116753786, 0.013944507035113433, 0.014127839843795724]\n",
      "lgb_score_mean: 0.014131097202672499\n",
      "lgb_score_std: 0.0001522982707484787\n"
     ]
    }
   ],
   "source": [
    "lgb_train2, lgb_test2 = lgb_model(train_data_spc[features], train_size['size2_label'], test_data_spc[features])\n",
    "# 0.014134515989711507\n",
    "# 0.014042814206327331\n",
    "# 0.014062382321726016"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "************************************ 1 ************************************\n",
      "Training until validation scores don't improve for 200 rounds.\n",
      "[500]\ttraining's l1: 0.00583644\tvalid_1's l1: 0.0125424\n",
      "Early stopping, best iteration is:\n",
      "[621]\ttraining's l1: 0.00482721\tvalid_1's l1: 0.0125206\n",
      "[0.01252055399751501]\n",
      "************************************ 2 ************************************\n",
      "Training until validation scores don't improve for 200 rounds.\n",
      "[500]\ttraining's l1: 0.00585627\tvalid_1's l1: 0.012409\n",
      "Early stopping, best iteration is:\n",
      "[723]\ttraining's l1: 0.00413916\tvalid_1's l1: 0.0123842\n",
      "[0.01252055399751501, 0.012384091458755167]\n",
      "************************************ 3 ************************************\n",
      "Training until validation scores don't improve for 200 rounds.\n",
      "[500]\ttraining's l1: 0.00586148\tvalid_1's l1: 0.0124636\n",
      "Early stopping, best iteration is:\n",
      "[650]\ttraining's l1: 0.00463665\tvalid_1's l1: 0.0124585\n",
      "[0.01252055399751501, 0.012384091458755167, 0.012458579215455382]\n",
      "************************************ 4 ************************************\n",
      "Training until validation scores don't improve for 200 rounds.\n",
      "[500]\ttraining's l1: 0.00587291\tvalid_1's l1: 0.0123917\n",
      "Early stopping, best iteration is:\n",
      "[558]\ttraining's l1: 0.00535603\tvalid_1's l1: 0.0123809\n",
      "[0.01252055399751501, 0.012384091458755167, 0.012458579215455382, 0.01238092971777432]\n",
      "************************************ 5 ************************************\n",
      "Training until validation scores don't improve for 200 rounds.\n",
      "[500]\ttraining's l1: 0.00583542\tvalid_1's l1: 0.0126187\n",
      "Early stopping, best iteration is:\n",
      "[576]\ttraining's l1: 0.00517894\tvalid_1's l1: 0.0126077\n",
      "[0.01252055399751501, 0.012384091458755167, 0.012458579215455382, 0.01238092971777432, 0.01260770121274679]\n",
      "lgb_scotrainre_list: [0.01252055399751501, 0.012384091458755167, 0.012458579215455382, 0.01238092971777432, 0.01260770121274679]\n",
      "lgb_score_mean: 0.012470371120449334\n",
      "lgb_score_std: 8.597775172559087e-05\n"
     ]
    }
   ],
   "source": [
    "lgb_train3, lgb_test3 = lgb_model(train_data_spc[features], train_size['size3_label'], test_data_spc[features])\n",
    "# 0.012495826819060672\n",
    "# 0.012430200764916783\n",
    "# 0.012436420627116453"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "# xgb_train, xgb_test = xgb_model(train_data_spc[features], train_size['size1_label'], test_data_spc[features])\n",
    "# xgb_train2, xgb_test2 = xgb_model(train_data_spc[features], train_size['size2_label'], test_data_spc[features])\n",
    "# xgb_train3, xgb_test3 = xgb_model(train_data_spc[features], train_size['size3_label'], test_data_spc[features])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "sub_file['size1'] = lgb_test\n",
    "sub_file['size2'] = lgb_test2\n",
    "sub_file['size3'] = lgb_test3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "sub_file.to_csv('sub.csv', index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "299.9929727328714\n",
      "300.12487893181634\n",
      "300.0416077182137\n"
     ]
    }
   ],
   "source": [
    "print(lgb_test.min())\n",
    "print(lgb_test.max())\n",
    "print(lgb_test.mean())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "299.9180458717305\n",
      "300.2928222825374\n",
      "300.06550391759436\n"
     ]
    }
   ],
   "source": [
    "print(lgb_train.min())\n",
    "print(lgb_train.max())\n",
    "print(lgb_train.mean())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Id</th>\n",
       "      <th>size1</th>\n",
       "      <th>size2</th>\n",
       "      <th>size3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>3953.000000</td>\n",
       "      <td>3953.000000</td>\n",
       "      <td>3953.000000</td>\n",
       "      <td>3953.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>112006.362004</td>\n",
       "      <td>300.041608</td>\n",
       "      <td>200.018514</td>\n",
       "      <td>199.999860</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>45220.694044</td>\n",
       "      <td>0.027741</td>\n",
       "      <td>0.052422</td>\n",
       "      <td>0.016632</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>56689.000000</td>\n",
       "      <td>299.992973</td>\n",
       "      <td>199.967867</td>\n",
       "      <td>199.973543</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>83514.000000</td>\n",
       "      <td>300.012995</td>\n",
       "      <td>199.981773</td>\n",
       "      <td>199.983474</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>89799.000000</td>\n",
       "      <td>300.049118</td>\n",
       "      <td>199.986686</td>\n",
       "      <td>200.002195</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>160716.000000</td>\n",
       "      <td>300.057091</td>\n",
       "      <td>200.095970</td>\n",
       "      <td>200.010374</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>176241.000000</td>\n",
       "      <td>300.124879</td>\n",
       "      <td>200.138697</td>\n",
       "      <td>200.099137</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  Id        size1        size2        size3\n",
       "count    3953.000000  3953.000000  3953.000000  3953.000000\n",
       "mean   112006.362004   300.041608   200.018514   199.999860\n",
       "std     45220.694044     0.027741     0.052422     0.016632\n",
       "min     56689.000000   299.992973   199.967867   199.973543\n",
       "25%     83514.000000   300.012995   199.981773   199.983474\n",
       "50%     89799.000000   300.049118   199.986686   200.002195\n",
       "75%    160716.000000   300.057091   200.095970   200.010374\n",
       "max    176241.000000   300.124879   200.138697   200.099137"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sub_file.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>size1</th>\n",
       "      <th>size2</th>\n",
       "      <th>size3</th>\n",
       "      <th>Id</th>\n",
       "      <th>size1_label</th>\n",
       "      <th>size2_label</th>\n",
       "      <th>size3_label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>16600.000000</td>\n",
       "      <td>16600.000000</td>\n",
       "      <td>16600.000000</td>\n",
       "      <td>16600.000000</td>\n",
       "      <td>16600.000000</td>\n",
       "      <td>16600.000000</td>\n",
       "      <td>16600.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>300.065520</td>\n",
       "      <td>200.005452</td>\n",
       "      <td>200.017767</td>\n",
       "      <td>62946.797048</td>\n",
       "      <td>300.065520</td>\n",
       "      <td>200.005452</td>\n",
       "      <td>200.017767</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.041601</td>\n",
       "      <td>0.052606</td>\n",
       "      <td>0.035177</td>\n",
       "      <td>33660.419640</td>\n",
       "      <td>0.041601</td>\n",
       "      <td>0.052606</td>\n",
       "      <td>0.035177</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>299.867000</td>\n",
       "      <td>199.836000</td>\n",
       "      <td>199.872000</td>\n",
       "      <td>33722.000000</td>\n",
       "      <td>299.867000</td>\n",
       "      <td>199.836000</td>\n",
       "      <td>199.872000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>300.041000</td>\n",
       "      <td>199.969000</td>\n",
       "      <td>199.996000</td>\n",
       "      <td>43203.750000</td>\n",
       "      <td>300.041000</td>\n",
       "      <td>199.969000</td>\n",
       "      <td>199.996000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>300.066000</td>\n",
       "      <td>199.998000</td>\n",
       "      <td>200.015000</td>\n",
       "      <td>49144.500000</td>\n",
       "      <td>300.066000</td>\n",
       "      <td>199.998000</td>\n",
       "      <td>200.015000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>300.088000</td>\n",
       "      <td>200.027000</td>\n",
       "      <td>200.035250</td>\n",
       "      <td>56481.500000</td>\n",
       "      <td>300.088000</td>\n",
       "      <td>200.027000</td>\n",
       "      <td>200.035250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>300.610000</td>\n",
       "      <td>200.191000</td>\n",
       "      <td>200.225000</td>\n",
       "      <td>150716.000000</td>\n",
       "      <td>300.610000</td>\n",
       "      <td>200.191000</td>\n",
       "      <td>200.225000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              size1         size2         size3             Id   size1_label  \\\n",
       "count  16600.000000  16600.000000  16600.000000   16600.000000  16600.000000   \n",
       "mean     300.065520    200.005452    200.017767   62946.797048    300.065520   \n",
       "std        0.041601      0.052606      0.035177   33660.419640      0.041601   \n",
       "min      299.867000    199.836000    199.872000   33722.000000    299.867000   \n",
       "25%      300.041000    199.969000    199.996000   43203.750000    300.041000   \n",
       "50%      300.066000    199.998000    200.015000   49144.500000    300.066000   \n",
       "75%      300.088000    200.027000    200.035250   56481.500000    300.088000   \n",
       "max      300.610000    200.191000    200.225000  150716.000000    300.610000   \n",
       "\n",
       "        size2_label   size3_label  \n",
       "count  16600.000000  16600.000000  \n",
       "mean     200.005452    200.017767  \n",
       "std        0.052606      0.035177  \n",
       "min      199.836000    199.872000  \n",
       "25%      199.969000    199.996000  \n",
       "50%      199.998000    200.015000  \n",
       "75%      200.027000    200.035250  \n",
       "max      200.191000    200.225000  "
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_size.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>size1</th>\n",
       "      <th>size2</th>\n",
       "      <th>size3</th>\n",
       "      <th>Id</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>299.998</td>\n",
       "      <td>199.995</td>\n",
       "      <td>199.967</td>\n",
       "      <td>33722</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15472</th>\n",
       "      <td>300.085</td>\n",
       "      <td>200.114</td>\n",
       "      <td>200.034</td>\n",
       "      <td>146291</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         size1    size2    size3      Id\n",
       "0      299.998  199.995  199.967   33722\n",
       "15472  300.085  200.114  200.034  146291"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_size[train_size.Id.isin(['33722','146291'])]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f94d4e2d198>"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_mold_data[train_mold_data.file_name=='./Train/mold_data_611173927_37559.csv']['SP'].astype(float).plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f78043f1cc0>"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_mold_data[test_mold_data.file_name=='./Test初赛/mold_data_611924900_56689.csv']['SP'].astype(float).plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f94ec19b0f0>"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_mold_data[train_mold_data.file_name=='./Train/mold_data_617382049_146291.csv']['SP'].astype(float).plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f96f49a1c18>"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_size['size1'].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f944454d2b0>"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_size['size2'].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f9682fcbb00>"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_size['size3'].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Id</th>\n",
       "      <th>size1</th>\n",
       "      <th>size2</th>\n",
       "      <th>size3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>56689</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>56691</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>56697</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>56698</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>56701</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3948</th>\n",
       "      <td>175911</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3949</th>\n",
       "      <td>175961</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3950</th>\n",
       "      <td>176111</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3951</th>\n",
       "      <td>176131</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3952</th>\n",
       "      <td>176241</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3953 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          Id  size1  size2  size3\n",
       "0      56689      1      1      1\n",
       "1      56691      1      1      1\n",
       "2      56697      1      1      1\n",
       "3      56698      1      1      1\n",
       "4      56701      1      1      1\n",
       "...      ...    ...    ...    ...\n",
       "3948  175911      1      1      1\n",
       "3949  175961      1      1      1\n",
       "3950  176111      1      1      1\n",
       "3951  176131      1      1      1\n",
       "3952  176241      1      1      1\n",
       "\n",
       "[3953 rows x 4 columns]"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sub_file"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python3 (PySpark)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
